package com.ruoyi.wechat.service.impl;

import java.util.ArrayList;
import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.uuid.IdUtils;
import com.ruoyi.wechat.domain.*;
import com.ruoyi.wechat.mapper.CampCommunicationImageMapper;
import com.ruoyi.wechat.service.ICampCommunicationImageService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.wechat.mapper.CampCommunicationMapper;
import com.ruoyi.wechat.service.ICampCommunicationService;

/**
 * 营地交流Service业务层处理
 * 
 * @author ruoyi
 * @date 2024-12-25
 */
@Service
public class CampCommunicationServiceImpl implements ICampCommunicationService 
{
    @Autowired
    private CampCommunicationMapper campCommunicationMapper;

    /**
     * 查询营地交流
     * 
     * @param campcommunicationId 营地交流主键
     * @return 营地交流
     */
    @Override
    public CampCommunication selectCampCommunicationByCampcommunicationId(String campcommunicationId)
    {
        return campCommunicationMapper.selectCampCommunicationByCampcommunicationId(campcommunicationId);
    }

    /**
     * 查询营地交流列表
     * 
     * @param campCommunication 营地交流
     * @return 营地交流
     */
    @Override
    public List<CampCommunication> selectCampCommunicationList(CampCommunication campCommunication)
    {
        return campCommunicationMapper.selectCampCommunicationList(campCommunication);
    }

    /**
     * 新增营地交流
     * 
     * @param campCommunication 营地交流
     * @return 结果
     */
    @Override
    public int insertCampCommunication(CampCommunication campCommunication)
    {
        String campcommunicationid = IdUtils.randomUUID();
        campCommunication.setCampcommunicationId(campcommunicationid);
        campCommunication.setCreateTime(DateUtils.getNowDate());
        // 插入动态图片和动态ID
        //给campCommunicationImagesList设置值
        ArrayList<CampCommunicationImage> campCommunicationImagesList = campCommunication.getCampCommunicationImagesList();
        if (campCommunicationImagesList!= null &&!campCommunicationImagesList.isEmpty()) {
            // 将生成的orderId设置到cartList中的每个元素上
            for (CampCommunicationImage campCommunicationImage : campCommunicationImagesList) {
                campCommunicationImage.setCampcommunicationId(campcommunicationid);
            }
        }
        return campCommunicationMapper.insertCampCommunication(campCommunication);
    }

    /**
     * 新增营地交流图片
     *
     * @param campCommunication 营地交流图片
     * @return 结果
     */
    @Override
    public String insertCampCommunicationImage(CampCommunication campCommunication) {
        String imageUrlId = IdUtils.randomUUID();
        ArrayList<CampCommunicationImage> campCommunicationImagesList = campCommunication.getCampCommunicationImagesList();
        if (campCommunicationImagesList!= null &&!campCommunicationImagesList.isEmpty()) {
            for (CampCommunicationImage campCommunicationImage : campCommunicationImagesList) {
                // 获取当前CampCommunicationImage中的图片地址
                String imageUrlAddress = campCommunicationImage.getImageUrlAddress();
                if (imageUrlAddress!= null &&!imageUrlAddress.isEmpty()) {
                    // 将图片地址设置到CampCommunicationImage对象中对应的属性上，这里假设对应的属性名为imageUrl
                    campCommunicationImage.setImageUrlAddress(imageUrlAddress);
                    campCommunicationImage.setImageUrlId(imageUrlId);

                }
            }
        }
        // 调用 新增营地交流方法
        this.insertCampCommunication(campCommunication);
        campCommunicationMapper.insertCampCommunicationImage(campCommunication);
        return campCommunication.getCampcommunicationId();
    }

    /**
     * 修改营地交流
     * 
     * @param campCommunication 营地交流
     * @return 结果
     */
    @Override

    public int updateCampCommunication(CampCommunication campCommunication)
    {
        return campCommunicationMapper.updateCampCommunication(campCommunication);
    }

    /**
     * 批量删除营地交流
     * 
     * @param campcommunicationIds 需要删除的营地交流主键
     * @return 结果
     */
    @Override
    public int deleteCampCommunicationByCampcommunicationIds(String[] campcommunicationIds)
    {
        return campCommunicationMapper.deleteCampCommunicationByCampcommunicationIds(campcommunicationIds);
    }

    /**
     * 删除营地交流信息
     * 
     * @param campcommunicationId 营地交流主键
     * @return 结果
     */
    @Override
    public int deleteCampCommunicationByCampcommunicationId(String campcommunicationId)
    {
        return campCommunicationMapper.deleteCampCommunicationByCampcommunicationId(campcommunicationId);
    }

    @Override
    public List<CampCommunication> getCampCommunicaTionList(CampCommunication campCommunication) {
        return campCommunicationMapper.getCampCommunicaTionList(campCommunication);
    }
}
